package com.hqully.labmanage.service;

import com.github.pagehelper.PageInfo;
import com.hqully.labmanage.domain.entity.Role;
import com.hqully.labmanage.domain.dto.RoleDTO;
import com.hqully.labmanage.domain.dto.PageDTO;

import java.util.List;

/**
 * <p>
 * 针对数据库表[roleDTO]的操作Service
 * </p>
 *
 * @entity {@link RoleDTO}
 * @date 2022-10-08 10:40:56 <br>
 * @author hqully <br>
 * @version 1.0
 */

public interface RoleService {

     /**
      * <p>
      *     根据角色id获取角色
      * </p>
      * @param id 用户名
      * @return {@link RoleDTO}
      * @date 2022-10-08 10:44:39 <br>
      * @author hqully <br>
      */
     RoleDTO getRoleById(Long id);

     /**
      * <p>
      *     根据[roleDTO]的参数分页条件查询角色列表
      * </p>
      * @param page    分页参数
      * @param roleDTO 查询对象条件参数
      * @return {@link PageInfo<RoleDTO>} 角色DTO分页列表
      * @date 2022-10-08 10:40:56 <br>
      * @author hqully <br>
      */
     PageInfo<RoleDTO> pageRoles(PageDTO page, RoleDTO roleDTO);


     /**
      * <p>
      *     根据[roleDTO]的参数条件查询角色
      * </p>
      * @param roleDTO 查询对象
      * @return {@link List<RoleDTO>} 角色DTO列表
      * @date 2022-10-08 10:40:56 <br>
      * @author hqully <br>
      */
     List<RoleDTO> listRoles(RoleDTO roleDTO);


     /**
      * <p>
      *     添加角色
      * </p>
      * @param roleDTO 角色DTO
      * @return {@link int}
      * @date 2022-10-08 10:40:56 <br>
      * @author hqully <br>
      */
     int addRole(RoleDTO roleDTO);

     /**
      * <p>
      *     更新角色
      * </p>
      * @param roleDTO 角色DTO
      * @return {@link int}
      * @date 2022-10-08 10:40:56 <br>
      * @author hqully <br>
      */
     int updateRole(RoleDTO roleDTO);


     /**
      * <p>
      *     通过[id]删除角色
      * </p>
      * @param id 角色id
      * @return {@link int}
      * @date 2022-10-08 10:40:56 <br>
      * @author hqully <br>
      */
     int deleteRoleById(Integer id);

}
